

try:
    x = int(input('请输入一个数：'))
    y = int(input('请再输入一个数：'))
    print(x)
    print(y)
    z = x / y
    print(f'{x}/{y}={z}')
except ZeroDivisionError as e1:     # 这里是通过try except 来捕获异常 具体的：except后可以接具体的错误类型 并可以将其作为一个值传递给别的对象
    print(e1)
except ValueError as e2:
    print(e2)
except:                        # except 后面没有接任何报错类型 那么就是接收前面所有没有接收到的错误
    print('你输入的不对')

else:
    print('你全输入对了，真聪明！')

finally:                            # 这里的这个代码的作用主要应用于 资源的释放（文件、网络、数据库连接的释放）
    print('始终都要运行的最终代码')

try:                                    # if x 存在报错：
    x = '运行程序'                           #执行except 即 执行程序z
except:   # 注意这里的except可以跟具体报错类型 可以 什么都不跟 并且对于特定的报错类型可以作为对象传递给别人
    z = 'x存在报错后需要执行的程序'
else:                                  # else（x没有报错）
    y = 'x没有报错后需要执行的程序'              # 执行y
finally:                               # 相当于与前面的程序没什么关联的一个新的程序
    pass
